/*
    * 作用域链
    * web浏览器中，全局执行环境是window对象，因此所有全局变量和函数都是作为window的属性和方法创建
    *
    * 当代码在一个环境中执行时，会创建变量对象的一个作用域链。作用域链的用途是保证对执行环境有权访问的所有变量和函数的有序访问
    * 作用域链不是调用链，它相当于一个维持当前环境可访问变量的链条，链条上记录了他能访问的变量的信息。
    * 在标识符解析的时候，是沿着作用域链从前往后(当前环境处在最前端)进行解析；
    *
    * */
   function outer() {
    let va = 'a';
    inner();
    function inner() {
        // 可以访问
        alert(va);
    }
}
outer();